<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of teste
 *
 * @author Lucas Pinheiro
 */
class Conteudo extends Admin {

    public function __construct() {
        parent::__construct();
        $this->load->language('conteudos/conteudo_layout');
        $this->parser->set_title_pagina('Conteúdo', 'adm/conteudo');
        $this->parser->set_title('Conteúdo');
        $this->load->model('conteudos/conteudo_model');
        $this->load->model('conteudos/conteudo_acessos_model');
        $this->load->model('conteudos/conteudo_categorias_model');
        $this->load->model('conteudos/conteudo_tags_model');
        $this->load->model('conteudos/conteudo_tipos_model');
        $this->load->helper('conteudos/combos');
        $this->load->helper('text');
    }

    public function index() {
        $this->parser->site_view('conteudos/dashboard', array());
    }

    public function consultar() {
        $params = array();
        $params['CAMPOS'] = 'c.*, ct.tipo as ct_tipo, u.username';
        $params['AND']['c.id_revisao'] = 0;
        $params['JOIN'][] = array(
            'TABELA' => $this->config->item('tblConteudoTipos') . ' as ct',
            'TIPO' => 'INNER',
            'AND' => 'c.id_conteudo_tipos = ct.id_conteudo_tipos',
        );
        $params['JOIN'][] = array(
            'TABELA' => $this->config->item('tblUser') . ' as u',
            'TIPO' => 'INNER',
            'AND' => 'c.id_user = u.id_user',
        );
        $b_consultar = $this->conteudo_model->consultar($params);

        $v_dados = array();
        $v_dados['conteudos'] = array();
        $v_dados['lang_title_consulta'] = $this->lang->line('lang_title_consulta');
        if ($b_consultar != NULL) {
            foreach ($b_consultar as $k => $v) {
                $v_dados['conteudos'][$k]['id_conteudo'] = $v->id_conteudo;
                $v_dados['conteudos'][$k]['titulo'] = $v->titulo;
                $v_dados['conteudos'][$k]['conteudo'] = word_limiter($v->conteudo, 5);
                $v_dados['conteudos'][$k]['id_revisao'] = $v->id_revisao;
                $v_dados['conteudos'][$k]['data_hora_cadastro'] = formatarData($v->data_hora_cadastro, array('formato' => 'd/m/Y H:i:s'));
                $v_dados['conteudos'][$k]['id_user'] = strtolower($v->username);
                $v_dados['conteudos'][$k]['id_conteudo_tipos'] = $v->id_conteudo_tipos;
                $v_dados['conteudos'][$k]['ct_tipo'] = $v->ct_tipo;
                $v_dados['conteudos'][$k]['acao'] = '<a href="' . base_adm('conteudos/conteudo/alterar/' . $v->id_conteudo) . '" title="Editar" class="button middle"><span class="icon icon145"></span></a>';
                $v_dados['conteudos'][$k]['acao'] .= '<a href="' . base_adm('conteudos/conteudo/excluir/' . $v->id_conteudo) . '" title="Excluir" class="button middle dialog_excluir"><span class="icon icon186"></span></a>';
                $v_dados['conteudos'][$k]['acao'] .= '<a href="' . base_adm('conteudos/conteudo/revisoes/' . $v->id_conteudo) . '" title="Revisões" class="button middle"><span class="icon icon4"></span></a>';
            }
        }
        $this->parser->site_view('lst_conteudos', $v_dados);
    }

    public function cadastrar() {
        $v_dados = array();
        $v_dados['lang_title_form'] = $this->lang->line('lang_title_form_insert');
        $v_dados['id_conteudo'] = '';
        $v_dados['titulo'] = '';
        $v_dados['conteudo'] = '';
        $v_dados['id_revisao'] = '';
        $v_dados['data_hora_cadastro'] = '';
        $v_dados['id_conteudo_tipos'] = combo_conteudo_tipos();
        $v_dados['action'] = base_adm('conteudos/conteudo/gravar');
        $this->parser->site_view('frm_conteudo', $v_dados);
    }

    public function excluir() {
        $params = array();
        $params['AND']['id_conteudo'] = $this->uri->segment(5);
        $b_exclusao = $this->conteudo_model->excluir($params);

        $v_dados = array();

        if ($b_exclusao == TRUE) {
            $params = array();
            $params['AND']['id_revisao'] = $this->uri->segment(5);
            $b_exclusao = $this->conteudo_model->excluir($params);
            $v_dados['cod'] = 999;
            $v_dados['msg'] = $this->lang->line('lang_delete_success');
        } else {
            $v_dados['cod'] = 111;
            $v_dados['msg'] = $this->lang->line('lang_delete_error');
        }

        echo json_encode($v_dados);
    }

    public function alterar($id_conteudo) {
        $params = array();
        $params['AND']['id_conteudo'] = $id_conteudo;

        $b_consultar = $this->conteudo_model->get($params);
        $v_dados = array();
        $v_dados['lang_title_form'] = $this->lang->line('lang_title_form_update');
        if ($b_consultar != NULL) {
            $v_dados['id_conteudo'] = $b_consultar->id_conteudo;
            $v_dados['titulo'] = $b_consultar->titulo;
            $v_dados['conteudo'] = $b_consultar->conteudo;
            $v_dados['id_revisao'] = $b_consultar->id_revisao;
            $v_dados['data_hora_cadastro'] = formatarData($b_consultar->data_hora_cadastro, array('formato' => 'd/m/Y H:i:s'));
            $v_dados['id_conteudo_tipos'] = combo_conteudo_tipos($b_consultar->id_conteudo_tipos);
            $v_dados['action'] = base_adm('conteudos/conteudo/gravar');
        }

        $this->parser->site_view('frm_conteudo', $v_dados);
    }

    public function gravar() {
        $this->form_validation->set_rules('titulo', 'Titulo', 'trim|required');
        $this->form_validation->set_rules('conteudo', 'Conteúdo', 'trim|required');
        $this->form_validation->set_rules('id_conteudo_tipos', 'Tipo', 'trim|required');

        $v_dados = array();

        if ($this->form_validation->run() === FALSE) {
            $v_dados = $this->form_validation->erros();
        } else {
            $v_dados['cod'] = 999;
            $params = array();
            $params['SET']['titulo'] = $this->input->post('titulo');
            $params['SET']['conteudo'] = $this->input->post('conteudo');
            $params['SET']['id_revisao'] = ($this->input->post('id_revisao') == '' ? 0 : $this->input->post('id_revisao'));
            $params['SET']['data_hora_cadastro'] = date('Y-m-d H:i:s');
            $params['SET']['id_user'] = $this->session->userdata('usuario_id_user');
            $params['SET']['id_conteudo_tipos'] = $this->input->post('id_conteudo_tipos');

            if ($this->input->post('id_conteudo') == '') {
                $v_dados['id'] = $this->conteudo_model->cadastrar($params);
                $v_dados['msg'] = $this->lang->line('lang_insert');
            } else {
                $this->gravar_revisao($this->input->post('id_conteudo'));
                $params['SET']['id_revisao'] = ($this->input->post('id_revisao') == '' ? 0 : $this->input->post('id_revisao'));
                $params['AND']['id_conteudo'] = $this->input->post('id_conteudo');
                $v_dados['id'] = $this->input->post('id_conteudo');
                $v_dados['msg'] = $this->lang->line('lang_update');
                $this->conteudo_model->alterar($params);
            }
        }
        echo json_encode($v_dados);
    }

    private function gravar_revisao($id_conteudo) {
        $params = array();
        $params['AND']['id_conteudo'] = $id_conteudo;
        $b_consultar = $this->conteudo_model->get($params);

        $params = array();
        foreach ($b_consultar as $key => $value) {
            if ($key == 'id_revisao') {
                $params['SET']['id_revisao'] = $id_conteudo;
            } else {
                $params['SET'][$key] = $value;
            }
        }
        unset($params['SET']['id_conteudo']);
        return $this->conteudo_model->cadastrar($params);
    }

}
